package com.xiaotu.storage;

import java.util.Date;

import org.springframework.stereotype.Component;

import com.xiaotu.common.util.Constants;
import com.xiaotu.common.util.DataRedisKeyUtils;
import com.xiaotu.storage.converter.AConverter;
import com.xiaotu.storage.converter.ConverterFactory;
import com.xiaotu.storage.model.CacheDataModel;

import net.sf.json.JSONObject;

/**
 * @类名 TVNetHotStorageProcessor
 * @日期 2017年2月27日
 * @作者 高海军
 * @功能 网站热剧数据转储处理类
 */
@Component("StarNetHotStorageProcessor")
public class StarNetHotStorageProcessor extends AHSetStorageProcessor
{
	private static final String[] FIELD_ARR = new String[] { "resourceSiteId",
			"name", "sex", "timestamp" };
	
	private static final String[] CONVERT_ARR = new String[] {
			AConverter.STRING_CONVERT, AConverter.STRING_CONVERT,
			AConverter.STRING_CONVERT, AConverter.TIMESTAMP_CONVERT };
	
	private static final boolean[] THROW_ARR = new boolean[] { true, true, true,
			true };
	
	@Override
	protected String getRedisKey(Date date)
	{
		return DataRedisKeyUtils
				.getKey(Constants.DataRedisKey.Star_NetHot_YYYYMMDD, date);
	}
	
	@Override
	public String process(JSONObject target, CacheDataModel cacheData,
			Date date)
	{
		this.validateAllNotEmpty(target, "name", "resourceSiteId", "sex");
		return this.list2CSVLine(ConverterFactory.convert(target, FIELD_ARR,
				CONVERT_ARR, THROW_ARR));
	}
	
	@Override
	public String getDataType()
	{
		return Constants.PageDataType.SEARCH_LIST;
	}
	
	@Override
	public String getTaskType()
	{
		return Constants.SpiderTaskType.STAR_NETHOT;
	}
}
